package com.gton.person;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * springboot  项目的入口函数：启动器
 * 在application.java上加入开启事物声明@EnableTransactionManagement，默认是开启的，可不添加
 * 1.如果在接口、实现类或方法上都指定了@Transactional 注解，则优先级顺序为方法>实现类>接口
 * 2.建议在实现方法或类注解@Transactional，而不要在接口上使用，JDK的代理机制基于接口没有问题，但CGLIB基于继承的代理，注解不能被继承，spring IOC底层两种代理都有
 * 3.默认只回滚RuntimeException，检查异常则不回滚，需要@Transactional(rollbackFor=Exception.class）表示任何异常都回滚
 * @author Administrator
 */
@SpringBootApplication
@EnableTransactionManagement
public class PersonApplication {

    public static void main(String[] args) {
        SpringApplication.run(PersonApplication.class, args);
    }

}
